﻿#ifndef FITKABSGEOMODELUPDIE_H
#define FITKABSGEOMODELUPDIE_H

#include "FITKInterfaceGeometryAPI.h"
#include "FITKAbsGeoCommand.h"

namespace Interface
{

    class FITKInterfaceGeometryAPI FITKAbsGeoModelUpDie :
        public FITKAbsGeoCommand
    {

    public:

        explicit FITKAbsGeoModelUpDie() = default;

        virtual ~FITKAbsGeoModelUpDie() = 0;

        void setLocation(double* p1);

        void getLocation(double* p1);

        void setDirection(double* dir);

        void getDirection(double* dir);

        void setRadius(double r);

        double getRadius() const;

        void setLength1(double length);

        double getLength1( ) const;

        void setLength2(double length);

        double getLength2( ) const;

        void setLength3(double length);

        double getLength3( ) const;

        FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override;

    protected:
        /**
         * @brief 端面圆心坐标
         * @author
         * @date
         */
        double _location[3] = { 0,0,0 };
        /**
         * @brief 轴线方向
         * @author
         * @date
         */
        double _direction[3] = { 0,0,0 };
        /**
         * @brief 长度L1
         * @author
         * @date
         */
        double _length1{ 0 };
        /**
         * @brief 长度L2
         * @author
         * @date
         */
        double _length2{ 0 };
        /**
         * @brief 厚度H0
         * @author
         * @date
         */
        double _length3{ 0 };
        /**
         * @brief 半径R
         * @author
         * @date
         */
        double _radius{ 0 };
    };
}

#endif // FITKABSGEOMODELUPDIE_H
